only unref if elt->ref_count > 0, (gtk_tree_model_filter_row_deleted):
authorKristian Rietveld <kris@gtk.org>
Sat, 27 May 2006 21:48:46 +0000 (21:48 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Sat, 27 May 2006 21:48:46 +0000 (21:48 +0000)
2006-05-27  Kristian Rietveld  <kris@gtk.org>

* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_remove_node):
only unref if elt->ref_count > 0,
(gtk_tree_model_filter_row_deleted): likewise. (Fixes #340839,
reported by Yevgen Muntyan).

ChangeLog
ChangeLog.pre-2-10
gtk/gtktreemodelfilter.c

index 50533f0d229fc029c3c5a633e24bacb44c90820b..64a0e8aa9b7f6ae435d55ae5df5a0c3673342799 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-05-27  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_remove_node):
+       only unref if elt->ref_count > 0,
+       (gtk_tree_model_filter_row_deleted): likewise. (Fixes #340839,
+       reported by Yevgen Muntyan).
+
 2006-05-27  Kristian Rietveld  <kris@gtk.org>
 
        Small refactoring. (#340428, Paolo Borelli).
index 50533f0d229fc029c3c5a633e24bacb44c90820b..64a0e8aa9b7f6ae435d55ae5df5a0c3673342799 100644 (file)
@@ -1,3 +1,10 @@
+2006-05-27  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_remove_node):
+       only unref if elt->ref_count > 0,
+       (gtk_tree_model_filter_row_deleted): likewise. (Fixes #340839,
+       reported by Yevgen Muntyan).
+
 2006-05-27  Kristian Rietveld  <kris@gtk.org>
 
        Small refactoring. (#340428, Paolo Borelli).
index 38b87c4f9a1441101911e9343ec07c2e57dc98bd..9668efbfa20fede660cda1c74d4ddfbaa01218a7 100644 (file)
@@ -994,7 +994,7 @@ gtk_tree_model_filter_remove_node (GtkTreeModelFilter *filter,
 
       if (parent_level || filter->priv->virtual_root)
         gtk_tree_model_filter_unref_node (GTK_TREE_MODEL (filter), iter);
-      else
+      else if (elt->ref_count > 0)
         gtk_tree_model_filter_real_unref_node (GTK_TREE_MODEL (filter),
                                                iter, FALSE);
 
@@ -1792,7 +1792,7 @@ gtk_tree_model_filter_row_deleted (GtkTreeModel *c_model,
       /* release the filter model's reference on the node */
       if (level->parent_level || filter->priv->virtual_root)
         gtk_tree_model_filter_unref_node (GTK_TREE_MODEL (filter), &iter);
-      else
+      else if (elt->ref_count > 0)
         gtk_tree_model_filter_real_unref_node (GTK_TREE_MODEL (data), &iter,
                                                FALSE);